home *** CD-ROM | disk | FTP | other *** search
- #include "ModePro.h"
-
- struct DefaultNode *AllocDefaultNode(STRPTR Name)
- {
- struct DefaultNode *dn;
-
- if(dn=AllocVec(sizeof(struct DefaultNode),MEMF_CLEAR|MEMF_PUBLIC))
- {
- if(Name)
- {
- if(dn->Def_Node.ln_Name=CopyString(Name,MEMF_CLEAR|MEMF_PUBLIC))
- return(dn);
- } //if noname
- else
- return(dn);
- FreeVec(dn);
- }
- return(0);
- }
-
- void FreeDNode(struct DefaultNode *dn)
- {
- if(dn)
- {
- FreeVec(dn->Def_Node.ln_Name);
- FreeVec(dn->Font.tta_Name);
- FreeVec(dn->PubName);
- FreeVec(dn->LockedPens);
- FreeVec(dn->HotKey);
- FreeVec(dn->Palette);
- FreeVec(dn->BackdropFile);
- FreeVec(dn);
- }
- }
-
- void FreeDefList(struct List *list)
- {
- struct DefaultNode *n;
-
- while(n=(struct DefaultNode *)RemHead(list))
- FreeDNode(n);
- }
-
- void FreeAllDefLists(struct List *list)
- {
- LONG l;
-
- for(l=0;l<NUM_LISTS;l++)
- FreeDefList(&list[l]);
- }
-
-
- struct DefaultNode *DupDNode(struct DefaultNode *Src)
- {
- struct DefaultNode *dnode=0;
-
- if(Src)
- {
- if(dnode=AllocVec(sizeof(struct DefaultNode),MEMF_PUBLIC|MEMF_CLEAR))
- {
- CopyMem(Src,dnode,sizeof(struct DefaultNode));
-
- dnode->Def_Node.ln_Succ=dnode->Def_Node.ln_Pred=0;
-
- dnode->Def_Node.ln_Name =CopyString(Src->Def_Node.ln_Name ,MEMF_PUBLIC);
- dnode->Font.tta_Name =CopyString(Src->Font.tta_Name ,MEMF_PUBLIC);
-
- if((dnode->PubName=CopyString(Src->PubName,MEMF_PUBLIC))==0)
- dnode->PubOptions=0;
-
- dnode->LockedPens =CopyString(Src->LockedPens, MEMF_PUBLIC);
- dnode->HotKey =CopyString(Src->HotKey, MEMF_PUBLIC);
- dnode->BackdropFile =CopyString(Src->BackdropFile, MEMF_PUBLIC);
-
- if(dnode->Palette=AllocVec(sizeof(struct RGB)*dnode->Colors,MEMF_PUBLIC))
- {
- CopyMem(Src->Palette,dnode->Palette,sizeof(struct RGB)*dnode->Colors);
- }
- else
- {
- dnode->Flags&=(~DNF_PALETTE);
- dnode->Colors=0;
- }
- }
- }
- return(dnode);
- }
-